1. NodeBox 1
    1. Homepage
    2. NodeBox 3Node-based app for generative design and data visualization
    3. NodeBox OpenGLHardware-accelerated cross-platform graphics library
    4. NodeBox 1Generate 2D visuals using Python code (Mac OS X only)
  2. Gallery
  3. Documentation
  4. Forum
  5. Blog

Mark Meyer | Parametric surfaces | circle curves

markmeyer-parametric5b

size(550, 550)
colormode(HSB)
background(0.2, 0.02, 0.2)
nofill()
stroke(0.2, 0.1, 0.8, 0.7)
strokewidth(0.25)
 
from math import sin, cos
def circle_equation(r, dt):
    center_x = 0.0
    center_y = 0.0
    t = 0.0
    while True:
        x = center_x + cos(t) * r
        y = center_y + sin(t) * r
        yield x, y
        t += dt
 
b = 5.5
eq1 = circle_equation(-135, -b)
eq2 = circle_equation(-165, b)
eq3 = circle_equation(150, b)
eq4 = circle_equation(325, b)
x1, y1 = eq1.next()
x2, y2 = eq1.next()
 
autoclosepath(False)
translate(WIDTH/2, HEIGHT/2)
beginpath(x1+x2, y1+y2)
for i in xrange(360*2):
    x1, y1 = eq1.next()
    x2, y2 = eq2.next()
    x3, y3 = eq3.next()
    x4, y4 = eq4.next()
    curveto(x4, y4, x3, y3, x1+x2, y1+y2)
endpath()